import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

function foo(count){

	var promise=new Promise((resolve,reject)=>{
	 	resolve(count+=2);
	});

	return promise;

}

function lewis(count){

	var promise=new Promise((resolve,reject)=>{
	 	resolve(count++);
	});

	return promise;

}

export default new Vuex.Store({
  state: {
  	count:0
  },
  mutations: {
    increment(state){//mutations 和 getters 中的方法第一个参数都是state对象,状态机中的方法都可以添加荷载payload
  		
  		setTimeout(function(){
  				state.count++;
  			}, 3000);
  	}
  },
  actions: {
  	/*async asyncIncrement(context){//content就是store的副本

  	  context.state.count= await foo(context.state.count);

  	},*/
  	async asyncIncrement({state}){//content就是store的副本

  	  state.count= await foo(state.count);

  	},
  	async asyncCount({commit}){

  		commit('increment');
  	}

  }
})
